﻿<%@ Page Title="" Language="C#" MasterPageFile="~/EasyUI.Master" AutoEventWireup="true" CodeBehind="CollectAll.aspx.cs" Inherits="jnagr.Web.ForestPets.CollectAll" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <link href="../CSS/IconExtension.css" rel="stylesheet" />
    <script src="../Script/export.js"></script>
    <script src="../Script/username.js"></script>
    <script src="../Script/datetime.js"></script>  
    <script src="../Script/highcharts.js"></script>   
     <script src="../Script/exporting.js"></script>
    <script>        
        $.extend($.fn.datagrid.methods, {
            getExcelXml: function (jq, param) {
                var worksheet = this.createWorksheet(jq, param);
                //alert($(jq).datagrid('getColumnFields'));
                var totalWidth = 0;
                var cfs = $(jq).datagrid('getColumnFields');
                for (var i = 1; i < cfs.length; i++) {
                    totalWidth += $(jq).datagrid('getColumnOption', cfs[i]).width;
                }
                //var totalWidth = this.getColumnModel().getTotalWidth(includeHidden);
                return '<?xml version="1.0" encoding="utf-8"?>' +//xml申明有问题，以修正，注意是utf-8编码，如果是gb2312，需要修改动态页文件的写入编码
            '<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:o="urn:schemas-microsoft-com:office:office">' +
            '<o:DocumentProperties><o:Title>' + param.title + '</o:Title></o:DocumentProperties>' +
            '<ss:ExcelWorkbook>' +
            '<ss:WindowHeight>' + worksheet.height + '</ss:WindowHeight>' +
            '<ss:WindowWidth>' + worksheet.width + '</ss:WindowWidth>' +
            '<ss:ProtectStructure>False</ss:ProtectStructure>' +
            '<ss:ProtectWindows>False</ss:ProtectWindows>' +
            '</ss:ExcelWorkbook>' +
            '<ss:Styles>' +
            '<ss:Style ss:ID="Default">' +
            '<ss:Alignment ss:Vertical="Top"  />' +
            '<ss:Font ss:FontName="arial" ss:Size="10" />' +
            '<ss:Borders>' +
            '<ss:Border  ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Top" />' +
            '<ss:Border  ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Bottom" />' +
            '<ss:Border  ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Left" />' +
            '<ss:Border ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Right" />' +
            '</ss:Borders>' +
            '<ss:Interior />' +
            '<ss:NumberFormat />' +
            '<ss:Protection />' +
            '</ss:Style>' +
            '<ss:Style ss:ID="title">' +
            '<ss:Borders />' +
            '<ss:Font />' +
            '<ss:Alignment  ss:Vertical="Center" ss:Horizontal="Center" />' +
            '<ss:NumberFormat ss:Format="@" />' +
            '</ss:Style>' +
            '<ss:Style ss:ID="headercell">' +
            '<ss:Font ss:Bold="1" ss:Size="10" />' +
            '<ss:Alignment  ss:Horizontal="Center" />' +
            '<ss:Interior ss:Pattern="Solid"  />' +
            '</ss:Style>' +
            '<ss:Style ss:ID="even">' +
            '<ss:Interior ss:Pattern="Solid"  />' +
            '</ss:Style>' +
            '<ss:Style ss:Parent="even" ss:ID="evendate">' +
            '<ss:NumberFormat ss:Format="yyyy-mm-dd" />' +
            '</ss:Style>' +
            '<ss:Style ss:Parent="even" ss:ID="evenint">' +
            '<ss:NumberFormat ss:Format="0" />' +
            '</ss:Style>' +
            '<ss:Style ss:Parent="even" ss:ID="evenfloat">' +
            '<ss:NumberFormat ss:Format="0.00" />' +
            '</ss:Style>' +
            '<ss:Style ss:ID="odd">' +
            '<ss:Interior ss:Pattern="Solid"  />' +
            '</ss:Style>' +
            '<ss:Style ss:Parent="odd" ss:ID="odddate">' +
            '<ss:NumberFormat ss:Format="yyyy-mm-dd" />' +
            '</ss:Style>' +
            '<ss:Style ss:Parent="odd" ss:ID="oddint">' +
            '<ss:NumberFormat ss:Format="0" />' +
            '</ss:Style>' +
            '<ss:Style ss:Parent="odd" ss:ID="oddfloat">' +
            '<ss:NumberFormat ss:Format="0.00" />' +
            '</ss:Style>' +
            '</ss:Styles>' +
            worksheet.xml +
            '</ss:Workbook>';
            },
            createWorksheet: function (jq, param) {
                // Calculate cell data types and extra class names which affect formatting
                var cellType = [];
                var cellTypeClass = [];
                //var cm = this.getColumnModel();
                var totalWidthInPixels = 0;
                var colXml = '';
                var headerXml = '';
                var visibleColumnCountReduction = 0;
                var cfs = $(jq).datagrid('getColumnFields');
                var colCount = cfs.length;
                for (var i = 1; i < colCount; i++) {
                    if (cfs[i] != '') {
                        var w = $(jq).datagrid('getColumnOption', cfs[i]).width;
                        totalWidthInPixels += w;
                        if (cfs[i] === "") {
                            cellType.push("None");
                            cellTypeClass.push("");
                            ++visibleColumnCountReduction;
                        }
                        else {
                            colXml += '<ss:Column ss:AutoFitWidth="1" ss:Width="130" />';
                            headerXml += '<ss:Cell ss:StyleID="headercell">' +
                        '<ss:Data ss:Type="String">' + $(jq).datagrid('getColumnOption', cfs[i]).title + '</ss:Data>' +
                        '<ss:NamedCell ss:Name="Print_Titles" /></ss:Cell>';
                            cellType.push("String");
                            cellTypeClass.push("");
                        }
                    }
                }
                var visibleColumnCount = cellType.length - visibleColumnCountReduction;
                var result = {
                    height: 9000,
                    width: Math.floor(totalWidthInPixels * 30) + 50
                };
                var rows = $(jq).datagrid('getRows');
                // Generate worksheet header details.
                var t = '<ss:Worksheet ss:Name="' + param.title + '">' +
            '<ss:Names>' +
            '<ss:NamedRange ss:Name="Print_Titles" ss:RefersTo="=\'' + param.title + '\'!R1:R2" />' +
            '</ss:Names>' +
            '<ss:Table x:FullRows="1" x:FullColumns="1"' +
            ' ss:ExpandedColumnCount="' + (visibleColumnCount + 2) +
            '" ss:ExpandedRowCount="' + (rows.length + 2) + '">' +
            colXml +
            '<ss:Row ss:AutoFitHeight="1">' +
            headerXml +
            '</ss:Row>';
                // Generate the data rows from the data in the Store
                //for (var i = 0, it = this.store.data.items, l = it.length; i < l; i++) {
                for (var i = 0, it = rows, l = it.length; i < l; i++) {
                    t += '<ss:Row>';
                    var cellClass = (i & 1) ? 'odd' : 'even';
                    r = it[i];
                    var k = 0;
                    for (var j = 1; j < colCount; j++) {
                        //if ((cm.getDataIndex(j) != '')
                        if (cfs[j] != '') {
                            //var v = r[cm.getDataIndex(j)];
                            var v = r[cfs[j]];
                            if (cellType[k] !== "None") {
                                t += '<ss:Cell ss:StyleID="' + cellClass + cellTypeClass[k] + '"><ss:Data ss:Type="' + cellType[k] + '">';
                                if (cellType[k] == 'DateTime') {
                                    t += v.format('Y-m-d');
                                } else {
                                    t += v;
                                }
                                t += '</ss:Data></ss:Cell>';
                            }
                            k++;
                        }
                    }
                    t += '</ss:Row>';
                }
                result.xml = t + '</ss:Table>' +
            '<x:WorksheetOptions>' +
            '<x:PageSetup>' +
            '<x:Layout x:CenterHorizontal="1" x:Orientation="Landscape" />' +
            '<x:Footer x:Data="Page &P of &N" x:Margin="0.5" />' +
            '<x:PageMargins x:Top="0.5" x:Right="0.5" x:Left="0.5" x:Bottom="0.8" />' +
            '</x:PageSetup>' +
            '<x:FitToPage />' +
            '<x:Print>' +
            '<x:PrintErrors>Blank</x:PrintErrors>' +
            '<x:FitWidth>1</x:FitWidth>' +
            '<x:FitHeight>32767</x:FitHeight>' +
            '<x:ValidPrinterInfo />' +
            '<x:VerticalResolution>600</x:VerticalResolution>' +
            '</x:Print>' +
            '<x:Selected />' +
            '<x:DoNotDisplayGridlines />' +
            '<x:ProtectObjects>False</x:ProtectObjects>' +
            '<x:ProtectScenarios>False</x:ProtectScenarios>' +
            '</x:WorksheetOptions>' +
            '</ss:Worksheet>';
                return result;
            }
        });
    </script>
    <script type="text/javascript">
        var colums;
        var otype;
        var ptype;
        var pseries;
        var fmc;
        var year;
        var mleveltype = [{ "id": "4", "text": "国家级", "iconCls": "icon-gj", "checked": true }, { "id": "3", "text": "省级", "iconCls": "icon-sj", "checked": true }, { "id": "2", "text": "市级", "iconCls": "icon-ssj", "checked": true }, { "id": "1", "text": "县级", "iconCls": "icon-xj", "checked": true }];
        function Save_Excel() {//导出Excel文件
            //getExcelXML有一个JSON对象的配置，配置项看了下只有title配置，为excel文档的标题
            var data = $('#tt').datagrid('getExcelXml', { title: 'datagrid import to excel' }); //获取datagrid数据对应的excel需要的xml格式的内容
            //用ajax发动到动态页动态写入xls文件中
            var url = '../admin/gridtoexcel.ashx'; //如果为asp注意修改后缀
            $.ajax({
                url: url, data: { data: data }, type: 'POST', dataType: 'text',
                success: function (fn) {
                    alert('导出excel成功！');
                    window.location = fn; //执行下载操作
                },
                error: function (xhr) {
                    alert('动态页有问题\nstatus：' + xhr.status + '\nresponseText：' + xhr.responseText)
                }
            });
            return false;
        }

        $(function () {
            $("#mlevel").combotree({ data: mleveltype, width: 120, valueField: 'id', textField: 'text', editable: false, panelHeight: 'auto', multiple: true, checkbox: true });

            year = new Date().getFullYear();
            $('#jd').combobox({
                onSelect: function (newValue, oldValue) {
                    if (newValue.text == '一季度') {
                        $("#StartTime").datebox("setValue", year + "-1-1");
                        $("#EndTime").datebox("setValue", year + "-3-31");
                    }
                    else if (newValue.text == '二季度') {
                        $("#StartTime").datebox("setValue", year + "-4-1");
                        $("#EndTime").datebox("setValue", year + "-6-30");
                    }
                    else if (newValue.text == '三季度') {
                        $("#StartTime").datebox("setValue", year + "-7-1");
                        $("#EndTime").datebox("setValue", year + "-9-30");
                    }
                    else if (newValue.text == '四季度') {
                        $("#StartTime").datebox("setValue", year + "-10-1");
                        $("#EndTime").datebox("setValue", year + "-12-31");
                    }
                    else if (newValue.text == '当天') {
                        var curr_time = new Date();
                        var strDate = curr_time.getFullYear() + "-";
                        strDate += curr_time.getMonth() + 1 + "-";
                        strDate += curr_time.getDate();
                        $("#StartTime").datebox("setValue", strDate);
                        $("#EndTime").datebox("setValue", strDate);
                    }
                }
            });           
            InitGird();
            InitTree();


        });
        function InitTree() {
            $('#pt').tree({
                url: '../harmfulinfo/GetHarm.ashx?type=8', //请求数据的页面               
                width: '100%', //宽度                
                lines: true,
                method: 'post',
                queryParams: { "action": "queryt" },
                onClick: function (node) {
                    if (node.text != "") {
                        if (node.type == "1") {
                            $('#idh').val(node.text);
                        }
                        else if (node.type == "2") {
                            $('#city').val(node.bm);
                        }

                    }
                },
                onLoadSuccess: function (node, param) {
                    $('#pt').tree("collapseAll");
                    var node = $('#pt').tree("getRoot");
                    if (node)
                        $('#pt').tree("expand", node.target);
                }
            });
        }
        //初始化表格
        function InitGird() {
            $('#tt').datagrid({
                title: '病虫动态', //表格标题
                url: 'GetPets.ashx', //请求数据的页面
                sortName: 'inputTime', //排序字段
                idField: '_id', //标识字段,主键
                iconCls: '', //标题左边的图标
                width: '100%', //宽度
                nowrap: false, //是否换行，True 就会把数据显示在一行里
                striped: true, //True 奇偶行使用不同背景色
                collapsible: false, //可折叠
                sortOrder: 'desc', //排序类型
                remoteSort: true, //定义是否从服务器给数据排序
                fitColumns: true,
                singleSelect: true,
                method: 'post',
                onLoadSuccess: function (data) {
                    otype = $('#otype').val();
                    ptype = $('#ptype').combobox('getText');
                    var md;
                    tc1 = "";
                    tc2 = "";
                    tc3 = "";
                    tc4 = "";
                    if (otype != '1') {                        
                        pseries = "轻度,中度,重度";
                            pseries = pseries.split(",");
                            WChartJS.init(pseries);
                            $.each(data.rows, function (k, v) {
                                md = v["hname"];
                                tc1 += v["l"] + ",";
                                tc2 += v["c"] + ",";
                                tc3 += v["h"] + ",";
                                tc4 += "'" + md + "',";
                            });
                            tc1 = "[" + tc1 + "]";
                            tc2 = "[" + tc2 + "]";
                            tc3 = "[" + tc3 + "]";
                            tc4 = "[" + tc4 + "]";
                            wchartInstance.series[0].setData(eval(tc1));
                            wchartInstance.series[1].setData(eval(tc2));
                            wchartInstance.series[2].setData(eval(tc3));
                            wchartInstance.xAxis[0].setCategories(eval(tc4));                       
                    }
                    else {
                       
                        pseries = $('#idh').val() + "轻度," + $('#idh').val() + "中度," + $('#idh').val() + "重度";
                            pseries = pseries.split(",");
                            WChartJS.init(pseries);
                            $.each(data.rows, function (k, v) {
                                md = v["areas"];
                                tc1 += v["l"] + ",";
                                tc2 += v["c"] + ",";
                                tc3 += v["h"] + ",";
                                tc4 += "'" + md + "',";
                            });
                            tc1 = "[" + tc1 + "]";
                            tc2 = "[" + tc2 + "]";
                            tc3 = "[" + tc3 + "]";
                            tc4 = "[" + tc4 + "]";
                            wchartInstance.series[0].setData(eval(tc1));
                            wchartInstance.series[1].setData(eval(tc2));
                            wchartInstance.series[2].setData(eval(tc3));
                            wchartInstance.xAxis[0].setCategories(eval(tc4));
                    }
                },
                columns: [[
                    { title: '地区', field: 'areas', rowspan: 2, width: 100 },
                    { title: '有害生物种类', field: 'hname', rowspan: 2, width: 150 },
                    { title: '调查阶段', field: 'Stage', rowspan: 2, width: 80 },
                    { title: '统计单位', field: 'totalUnit', rowspan: 2, width: 80 },
                    { title: '发生程度面积（公顷）', field: 'a', colspan:3, align: 'center'}],
                    [
                        {
                            title: '轻度', field: 'l', align: 'center', width: 80
                        },
                        {
                            title: '中度', field: 'c', align: 'center', width: 80
                        },
                        {
                            title: '重度', field: 'h', align: 'center', width: 80
                        }
                    //    ,
                    //{
                    //    title: '合计', field: 'hj', formatter: function (value, row) {
                    //        var a = parseFloat(row.l) + parseFloat(row.c)+ parseFloat(row.h);
                    //        return a;
                    //    },
                    //    align: 'center'
                    //}
                     ]
                    ],
                toolbar: "#tab_toolbar",
                queryParams: { "action": "queryca" },
                pagination: false, //是否开启分页
                pageNumber: 1, //默认索引页
                pageSize: 100, //默认一页数据条数
                rownumbers: true //行号
            });

            Highcharts.setOptions({
                lang: {
                    contextButtonTitle: "图表导出菜单",
                    decimalPoint: ".",
                    downloadJPEG: "下载JPEG图片",
                    downloadPDF: "下载PDF文件",
                    downloadPNG: "下载PNG文件",
                    downloadSVG: "下载SVG文件",
                    drillUpText: "返回 {series.name}",
                    loading: "加载中",
                    months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
                    noData: "没有数据",
                    numericSymbols: ["千", "兆", "G", "T", "P", "E"],
                    printChart: "打印图表",
                    resetZoom: "恢复缩放",
                    resetZoomTitle: "恢复图表",
                    shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                    thousandsSep: ",",
                    weekdays: ["星期一", "星期二", "星期三", "星期三", "星期四", "星期五", "星期六", "星期天"]
                }
            });
        }


        function getQueryParams(queryParams) {
            var StartTime = $("#StartTime").datebox("getValue");
            var EndTime = $("#EndTime").datebox("getValue");
            var idstr = $("#idstr").val();
            var idh = $("#idh").val();
            var city = $("#city").val();
            var otype = $("#otype").val();
            var mlevel = $("#mlevel").combotree("getValues").toString();
            queryParams.mlevel = mlevel;
            queryParams.StartTime = StartTime;
            queryParams.EndTime = EndTime;
            queryParams.idstr = idstr;
            queryParams.idh = idh;
            queryParams.otype = otype;
            queryParams.city = city;
            return queryParams;

        }
        //增加查询参数，重新加载表格  
        function reloadgrid(t) {
            $('#otype').val(t);
            if (t == '1') {
                if ($("#idh").val() == '') {
                    $.messager.alert("提示", "请选择虫子！", "info");
                    return;
                }
            }
            var queryParams = $('#tt').datagrid('options').queryParams;
            getQueryParams(queryParams);
            $('#tt').datagrid('options').queryParams = queryParams;
            $("#tt").datagrid('reload');

        }
        var wchartInstance;
        var WChartJS = {
            init: function (chs) {
                var s = "[";
                $.each(chs, function () {
                    //s = s + "{name:'" + this + "',data:[],dataLabels:{enabled: true,rotation: -90,color: '#FFFFFF',align: 'right', x: 4,y: 10,style: { fontSize: '13px',fontFamily: 'Verdana, sans-serif',textShadow: '0 0 3px black'}}},";
                    s = s + "{name:'" + this + "',data:[],dataLabels:{enabled: true}},";
                });
                s = s.substr(0, s.length - 1);
                s = s + "]";
                wchartInstance = new Highcharts.Chart({
                    chart: {
                        renderTo: 'chartArea',
                        type: 'column'
                    },
                    credits: {
                        enabled: false
                    },
                    exporting: {
                        enabled: true
                    },
                    title: {
                        text: '',
                        x: -20 //center
                    },
                    plotOptions: {
                        column: {
                            //stacking: 'normal',
                            //dataLabels: {
                            //    enabled: true,
                            //    color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'
                            //}
                        }
                    },
                    xAxis: {
                        type: 'category',
                        labels: {
                            formatter: function () {
                                return this.value;
                            }
                        }
                    },
                    yAxis: {
                        title: {
                            text: '数值'
                        },
                        stackLabels: {
                            enabled: true,
                            style: {
                                fontWeight: 'bold',
                                color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                            }
                        },
                        plotLines: [{
                            value: 0,
                            width: 1,
                            color: '#808080'
                        }]
                    },
                    tooltip: {
                        formatter: function () {
                            //return '<b>' + this.series.name + '：</b>' + this.y + '<br/> ';
                            var str = '<b>' + this.x + '</b><br>' +
                    this.series.name + ': ' + this.y;                           
                            return str;
                        }
                    },
                    legend: {
                        align: 'center',
                        verticalAlign: 'top',
                        borderWidth: 0
                    },
                    series: eval(s)
                });
            }
        };



    </script>
    <style type="text/css">
        .fitem {
            width: 100%;
            
        }

            .fitem label {
                width:60px;
                line-height: 22px;
            }

            .fitem input {
                width: 120px;
            }
             .dl1 {
            color:green;
            font-weight:bold;
        }
        .dl2 {
            color:blue;
            font-weight:bold;
        }
        .dl3 {
            color:yellow;
            font-weight:bold;
        }
        .dl4 {
            color:red;
            font-weight:bold;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <div class="easyui-layout" style="width: 100%; height: 100%;" id="mycon">
        <div region="west" split="true" title="区域检索" style="width: 180px; overflow: scroll" id="west">
            <ul id="pt"></ul>

        </div>
        <div region="center" style="background: #eee; overflow-y: hidden">
             <div class="easyui-layout" data-options="fit:true">
                <div data-options="region:'center'" style="padding: 5px; background: #eee;">
                    <table id="tt">
                    </table>
                </div>
                <div id="chartArea" data-options="region:'south',split:true" style="height: 200px;">
                </div>
            </div>
        </div>
        <div id="tab_toolbar" style="padding: 4px;">
            <table cellpadding="0" cellspacing="0" style="width: 100%">
                <tr>
                    <td style="padding-left: 2px">
                        <div>
                            时间从:  
           <input id="StartTime" class="easyui-datebox" style="width: 100px" />
                            到:  
           <input id="EndTime" class="easyui-datebox" style="width: 100px" />
                <select id="jd" class="easyui-combobox" name="jd" style="width:80px;">
                    <option value="季度">季度</option>
                                <option value="一季度">一季度</option>
                                <option value="二季度">二季度</option>
                                <option value="三季度">三季度</option>
                                <option value="四季度">四季度</option>
                    <option value="当天">当天</option>
</select>            
                            <select id="ptype" class="easyui-combobox" name="ptype" style="width:60px;">
                                <option value="所有">所有</option>   
   <option value="卵">卵</option>
                                <option value="幼虫">幼虫</option>
                                <option value="蛹">蛹</option>
                                <option value="成虫">成虫</option>
</select>
                            <input id="mlevel"  name="mlevel" />  
                           <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'" onclick="reloadgrid(1)">按种类汇总</a>
                            <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'" onclick="reloadgrid(2)">按区域汇总</a>
                            <%--<a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-save'" onclick="Save_Excel()">导出</a>--%>
                            <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-save'" onclick="Exportc('excel', $('#tt'));">导出</a>
<input name="idstr" id="idstr" type="hidden" />
                    <input name="idh" id="idh" type="hidden" />
                    <input name="city" id="city" type="hidden" />
                    <input name="st" id="st" type="hidden" />
                    <input name="et" id="et" type="hidden" />
                    <input name="otype" id="otype" type="hidden" value="2" />
                        </div>
                    </td>
                </tr>
            </table>

        </div>       
    </div>
</asp:Content>
